package chapter06.s04generic.p01class;

import java.util.ArrayList;

/**
 * 泛型
 * 泛型的本质是参数化类型，也就是说所操作的数据类型被指定为一个参数
 * <p>
 * 泛型类的使用
 */
public class Example22 {
    public static void main(String[] args) {
        // ArrayList可以用来保存 int 类型的元素
        ArrayList integerList = new ArrayList();     // 创建ArrayList集合
        integerList.add(1);
        integerList.add(2);
        integerList.add(3);
        // 如果存储非Integer类型的元素，不会报错
        //integerList.add("String1");
        System.out.println(integerList);

        // ArrayList可以用来保存 String 类型的元素
        ArrayList stringList = new ArrayList();
        stringList.add("string1");
        stringList.add("String2");
        stringList.add("String3");
        System.out.println(stringList);

        // 可以发现，ArrayList 可以保存不同类型的元素

        // 参数类型化， 创建ArrayList时，增加完整的类型信息
        // 加上参数信息<Integer>后，表示容器里，只能放入Integer类型的元素，消除了编译告警提示
        ArrayList<Integer> paramIntegerList = new ArrayList();     // 创建ArrayList集合
        paramIntegerList.add(1);
        paramIntegerList.add(2);
        paramIntegerList.add(3);
        // 如果存储非Integer类型的元素，会报错
        //paramIntegerList.add("String1");
        System.out.println(paramIntegerList);

    }
}
